// Copyright (c) Microsoft Corporation. 
// Licensed under the MIT license.

#pragma once

#include "CoreMinimal.h"

#include "IMeshReductionInterfaces.h"
#include "Modules/ModuleInterface.h"
#include "Modules/ModuleManager.h"
#include "ISimplygonReduction.h"

/**
 * @brief Simplygon Plugin MeshReuduction Module. Simplygon's implementation of reduction interfaces and extensions.
*/
class ISimplygonPluginMeshReductionModule : public IMeshReductionModule
{
	public:
	
	/**
	 * @brief Get the Simplygon mesh reduction interface.
	 * @return ISimplygonReduction pointer or nullptr. 
	*/
	virtual ISimplygonReduction* GetSimplygonReduction() const = 0;

	/**
	 * @brief Get the Distributed Mesh Merging interface.
	 * @return ISimplygonReduction pointer or nullptr.
	 */
	virtual ISimplygonReduction* GetDistributedMeshMerging() const = 0;
};
